package com.gkd.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkd.pojo.dto.PostDTO;
import com.gkd.pojo.dto.PostPageQueryDTO;
import com.gkd.pojo.entity.Post;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkd.pojo.vo.PostVO;
import com.gkd.pojo.vo.PublishListVO;
import com.gkd.result.PageResult;

import java.util.List;
import java.util.Map;

/**
* @author ZJF
* @description 针对表【post】的数据库操作Service
* @createDate 2024-06-15 18:18:43
*/
public interface PostService extends IService<Post> {

    /**
     * 文章上传
     * @param postDTO
     */
    void add(PostDTO postDTO);

    /**
     * 文章分页查询
     * @param postPageQueryDTO
     * @return
     */
    PageResult pageQuery(PostPageQueryDTO postPageQueryDTO);

    /**
     * 修改文章
     * @param postDTO
     */
    void update(PostDTO postDTO);

    /**
     * 根据id获取文章
     * @param postId
     * @return
     */
    PostVO getById(Integer postId);

    /**
     * 删除文章与关联标签
     * @param postIds
     */
    void deleteByIds(List<Integer> postIds);

    /**
     * 总浏览量
     * @return
     */
    Long sumView();

    /**
     * 获取近7天的提交数量
     * @return
     */
    List<PublishListVO> publishList();

    /**
     * 文章分类统计
     * @return
     */
    List<Map<String, Object>> selectCategoryPostCounts();
}
